#pragma once

#include <iostream>
#include <cstdlib>
#include <string>
#include <ncurses.h>

// 声明一个函数用于初始化git仓库配置
// 参数:
//   name - 传入的用户名字符串引用，将作为git提交者姓名
//   email - 传入的邮箱字符串引用，将作为git提交者邮箱
// 返回值:
//   布尔值，true表示初始化成功，false表示失败
bool git_init(std::string &name, std::string &email);

// 声明一个函数用于将当前目录下的文件添加到git暂存区
// 相当于执行"git add ."命令
// 返回值:
//   布尔值，true表示添加成功，false表示失败
bool git_add();

// 声明一个函数用于提交git变更
// 参数:
//   message - 传入的提交信息字符串常量引用，将作为本次提交的说明
// 返回值:
//   布尔值，true表示提交成功，false表示失败
bool git_commit(const std::string &message);

// 声明一个函数用于添加远程仓库地址
// 参数:
//   url - 传入的远程仓库URL字符串常量引用
// 返回值:
//   布尔值，true表示添加成功，false表示失败
bool git_remote_add(const std::string &url);

// 声明一个函数用于推送本地提交到远程仓库
// 相当于执行"git push"命令
// 返回值:
//   布尔值，true表示推送成功，false表示失败
bool git_push();

// 声明一个函数用于从远程仓库拉取更新
// 相当于执行"git pull"命令
// 返回值:
//   布尔值，true表示拉取成功，false表示失败
bool git_pull();